import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86132
 * Date: 2022-04-28
 * Time: 12:46
 */
public class Test {
    //字符串通配符
    import java.util.*;
    public class Main{
        public static void main(String[]args){
            Scanner sc=new Scanner(System.in);
            while(sc.hasNextLine()){
                String t=sc.nextLine();//通配符字符串
                String s=sc.nextLine();//字符串
                System.out.println(match(t,s));
            }
        }
        public static boolean match(String t,String s){
            //因为要一个字符一个字符匹配，所以先拆成一个个字符放到数组中
            char[] ct=t.toCharArray();
            char[] cs=s.toCharArray();
            int lt=ct.length;
            int ls=cs .length;
            boolean[][] dp=new boolean[ls+1][lt+1];//长:ls 宽:lt
            dp[0][0]=true;//base case
            for(int i=0;i<=ls;i++){//i用来遍历字符串数组
                for(int j=1;j<=lt;j++){//j用来遍历通配符数组
                    if(ct[j-1]=='*'){//当通配符时*时（要单独判断，因为*可以匹配多个字符）
                        if(i==0){////此时没有字符串与*匹配
                            dp[i][j]=dp[i ][j-1];//此时前一个是啥就是啥
                        }else{
                            if(cs[i-1]=='.'||cs[i-1]>='A'&&cs[i-1]<='Z'
                                    ||cs[i-1]>='a'&&cs[i-1]<='z'
                                    ||cs[i-1]>='0'&&cs[i-1]<='9'){
                                //如果截止到*的通配符和当前要匹配字符的前一个字符匹配成功，则为true(此时*匹配多个字符)
                                //如果*之前的通配符和要匹配字符匹配成功，则也为true(此时*匹配一个字符）

                                dp[i][j]=dp[i-1][j]||dp[i][j-1];
                            }
                        }
                    }else{//当通配符不是*时
                        if(i>0&&defs(ct[j-1],cs[i-1])){//defs方法，用来看通配符表达式和字符串是不是相等
                            //如果当前字符匹配成功，要看一下前面的字符是否匹配成功，都成功才成功

                            dp[i][j]=dp[i-1][j-1];
                        }
                    }
                }
            }
            return dp[ls][lt];
        }
        public static boolean defs(char t,char s){//判断字符是否匹配
            if(t=='?') return true;
            if(t>='a'&&t<='z'){
                t=(char)(t-'a'+'A');//把小写字母转换成大写字母
            }
            if(s>='a'&&s<='z'){
                s=(char)(s-'a'+'A');
            }
            return s==t;
        }

    }
}
